package com.aiwei.tdjk.service;

import com.aiwei.tdjk.bean.Pager;
import com.aiwei.tdjk.dto.request.GetRolePagerRequest;
import com.aiwei.tdjk.entity.Role;

import java.util.List;
import java.util.Set;

/**
 * Created by yanfeng on 2016/12/13.
 */
public interface RoleService {

    /**
     * 获取可用的角色列表
     *
     * @param roleIds
     * @return
     */
    Set<Role> findShowRoles(Set<Long> roleIds) ;


    Role get(Long id);

    List<Role> list();

    /**
     * 根据roleId获取角色列表
     * @param roleIds
     * @return
     */
    List<Role> getByRoleIds(String roleIds);

    void save(Role role);

    void save(Role role,Long[] resourceId,String[] permissionIds);

    int update(Role role);

    /**
     * 修改角色 关联的资源权限、自己本身基本信息
     * @param role
     * @param resourceId
     * @param permissionIds
     * @return
     */
    int update(Role role, Long[] resourceId, String[] permissionIds);

    int delete(Long id);

    int delete(Long[] ids);

    /**
     * 获取分页列表
     * @param request
     * @return
     */
    Pager<Role> find(GetRolePagerRequest request);

    List<Long> getRoleIdsByRoleSet(Set<Role> roles);

}
